<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台（PHP版）
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码，建议反馈是我们前进的动力
// | 开源版本可自由商用，可去除界面版权logo
// | gitee下载：https://gitee.com/likeshop_gitee/likeadmin
// | github下载：https://github.com/likeshop-github/likeadmin
// | 访问官网：https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------

namespace app\api\controller;

use app\common\enum\FileEnum;
use app\common\service\UploadService;
use Exception;
use think\response\Json;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;


/** 上传文件
 * Class UploadController
 * @package app\api\controller
 */
class UploadController extends BaseApiController
{

    /**
     * @notes 上传图片
     * @return Json
     * @author 段誉
     * @date 2022/9/20 18:11
     */
    public function image()
    {
        try {
            $result = UploadService::image(0, $this->userId,FileEnum::SOURCE_USER);
            return $this->success('上传成功', $result);
        } catch (Exception $e) {
            return $this->fail($e->getMessage());
        }
    }

    public function images()
    {
        // 获取前端传过来的文件
        $file = $this->request->file('file');
        if (!$file) {
            return json(['error' => true, 'message' => '文件上传失败']);
        }
        // 文件是否上传成功
        if (!$file->isValid()) {
            return json(['error' => true, 'message' => '无效的文件上传']);
        }
        // 获取文件原始名字
        $originalName = $file->getOriginalName('name');
        $ext = pathinfo($originalName, PATHINFO_EXTENSION); // 文件扩展名
        $realPath = $file->getRealPath(); // 文件的临时存放路径
        $fileName = time() . '1' . '.' . $ext; // 构建保存到七牛的文件名
        // 七牛相关配置信息
        $accessKey = 'dr27X9EmY76DkTU0Hg4UXltgzWbWDNBby3z_qYcp';
        $secretKey = 'Ah3HF_nPQwyKaHp1tTAkDQnY83179ifCI4lb_wB_';
        $bucket = 'shengyuekeji666'; // 对象存储空间名字

        $domain = 'https://shengyue.yaoyunxin.cn'; // 您绑定的七牛域名
        // 初始化签权对象
        $auth = new Auth($accessKey, $secretKey);
        // 生成上传Token

        $token = $auth->uploadToken($bucket);

        // 初始化 UploadManager 对象并进行文件的上传
        $uploadMgr = new UploadManager();
        // 调用 UploadManager 的 putFile 方法进行文件的上传
        $lpd = $uploadMgr->putFile($token, $fileName, $realPath);


            // 构建文件在七牛云存储的外链
            $fileUrl = $domain . '/' . $fileName;

       return $this->success("上传成功",['data'=>$fileUrl]);

            // 返回文件路径

    }
    public function imagesq()
    {
        $file=$this->request->file("file");
        $accessKey = 'dr27X9EmY76DkTU0Hg4UXltgzWbWDNBby3z_qYcp';
        $secretKey = 'Ah3HF_nPQwyKaHp1tTAkDQnY83179ifCI4lb_wB_';
// 初始化签权对象
        $auth = new Auth($accessKey, $secretKey);
// 需要上传的空间
        $bucket = 'shengyuekeji666';
// 生成上传Token
        $token = $auth->uploadToken($bucket);
// 要上传文件的本地路径
        $filePath = '/path/to/your/file.png';
// 上传到七牛后保存的文件名
        $key = 'my-upload-name.png';
// 初始化 UploadManager 对象并进行文件的上传
        $uploadMgr = new UploadManager();
        try {
            list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
            if ($err !== null) {
                echo "上传失败。错误信息: " . $err . "\n";
            } else {
                echo "上传成功。文件信息: " . json_encode($ret) . "\n";
            }
        } catch(Exception $e) {
            echo $e->getMessage() . "\n";
        }
    }



}